Laptop, handheld, and other portable computers or computing devices have increased in popularity as the devices have become smaller in size and less expensive. Additionally, improved operating speed and processing power of portable computers has increased their popularity. Many portable computers are capable of storing multiple application programs, such as address books, games, calculators, and the like. The application programs can be permanently installed in the portable computer during manufacture (e.g., on read-only memory (ROM)). Alternatively, one or more application programs may be installed by the user after purchasing the portable computer.
Many of these small computers have limited physical resources. For example, both primary and secondary memory are typically quite limited in comparison to desktop computers. In addition, small computers and other information processing devices often do not accommodate any form of removable mass storage such as floppy disks or optical disks. To make up for this deficiency, such computers are often capable of utilizing the resources of desktop computers or other base computers.
Initially, a base computer (such as a desktop computer) installs application programs on a smaller, more resource-limited portable computer, such as a laptop, handheld, or palmtop computer. Such application programs are typically distributed from their manufacturers on some type of non-volatile storage medium such as a floppy disk or a CD-ROM. Since the portable computer typically has no hardware to read such a storage medium, the portable computer is instead connected to communicate with the base computer, typically through a serial link. The base computer reads the application program from the non-volatile storage medium and downloads the program to the portable computer.
Portable computers that can receive application programs downloaded from a desktop computer are versatile and allow application programs to be replaced or upgraded easily. Typically, an installation application is run on the desktop computer that allows the user to select one or more application programs for downloading into the portable computer. After selecting the appropriate application programs, the installation application downloads the application programs to the portable computer.
The invention described herein relates to the synchronization of objects, such as databases, stored in portable computers with corresponding objects stored in a base computer. Some portable computers contain a built-in main memory as well as one or more slots or connectors to receive optional removable memory cards. Such memory cards allow a user to increase the memory resources of a portable computer. The additional memory resources can be used for storing one or more objects, storing additional application programs, or executing additional application programs simultaneously. The memory cards are removable from the portable computer, such that the objects or applications stored on the cards will become inaccessible if the card is removed or disconnected from the portable computer. Inaccessible objects cannot be synchronized with the corresponding objects on the base computer because the objects cannot be retrieved unless the memory card is coupled to the portable computer.
Typically, when a portable computer is synchronized with a base computer, objects that have been modified since the last synchronization process are synchronized such that the portable computer and the base computer contain identical objects. Further, during each synchronization process, if an object has been deleted on the portable computer or the base computer since the last synchronization process, then the corresponding object on the other system is also deleted. Thus, if a memory card containing a previously synchronized object is removed from the portable computer, then a synchronization process will delete the previously synchronized object from the base computer. Typically, the user of the system did not intend for the objects on the memory card to be deleted from the base computer during a synchronization process. For example, the user may have temporarily removed the memory card to allow the insertion of a different memory card containing different objects or application programs. In this example, the user has not deleted the object from the memory card. The object remains stored on the memory card, but the memory card has been temporarily removed from the portable computer.
Although the memory card containing a particular object was removed from the portable computer, the user may desire to continue accessing the object stored on the memory card using the base computer. However, if the object is deleted from the base computer during a synchronization process, the user must re-insert the memory card in the portable computer and complete a synchronization process to allow access to the object using the base computer. If the memory card containing the object is then removed from the portable computer, the next synchronization process will again delete the object from the base computer.
Therefore, it is desirable to provide a mechanism that prevents the synchronization of particular objects when one instance of the object is stored on a memory card or other storage device that has become inaccessible to the base computer or the portable computer.